home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / dev / src / libframe.lha / Macros.i < prev    next >
Text File  |  1995-10-07  |  3KB  |  197 lines

  1.     IFND    MY_MACROS_I
  2. MY_MACROS_I     SET     1
  3. *****
  4. *****   Macros.I
  5. *****
  6. *****   Version 1.0
  7. *****
  8.  
  9.         IFND    EXEC_TYPES_I
  10.         INCLUDE Exec/Types.I
  11.         ENDC
  12.  
  13.         IFND    MY_ALLLIBS_I
  14.         INCLUDE My/AllLibs.I
  15.         ENDC
  16.  
  17. VGET                    MACRO
  18.             Move.\0 var_\1(a5),\2
  19.             ENDM
  20.  
  21. VPUT                    MACRO
  22.             Move.\0 \1,var_\2(a5)
  23.             ENDM
  24.  
  25. VADD                    MACRO
  26.             IFEQ    NARG-1
  27.              Add.\0  #1,var_\1(a5)
  28.             ELSE
  29.              Add.\0  \1,var_\2(a5)
  30.             ENDC
  31.             ENDM
  32.  
  33. VSUB                    MACRO
  34.             IFEQ    NARG-1
  35.              Sub.\0  #1,var_\1(a5)
  36.             ELSE
  37.              Sub.\0  \1,var_\2(a5)
  38.             ENDC
  39.             ENDM
  40.  
  41. VTST                    MACRO
  42.             Tst.\0  var_\1(a5)
  43.             ENDM
  44.  
  45. VCMP                    MACRO
  46.             IFC     '\*LEFT(\1,1)','#'
  47.              Cmp.\0  \1,var_\2(a5)
  48.             ELSE
  49.              Cmp.\0  var_\2(a5),\1
  50.             ENDC
  51.             ENDM
  52.  
  53. VLEA                    MACRO
  54.             Lea     var_\1(a5),\2
  55.             ENDM
  56.  
  57. VOR                     MACRO
  58.             Or.\0   \1,var_\2(a5)
  59.             ENDM
  60.  
  61. VAND                    MACRO
  62.             And.\0  \1,var_\2(a5)
  63.             ENDM
  64.  
  65. VNOT                    MACRO
  66.             Not.\0  var_\1(a5)
  67.             ENDM
  68.  
  69. SGET                    MACRO
  70.             Move.\0 var_\1(sp),\2
  71.             ENDM
  72.  
  73. SPUT                    MACRO
  74.             Move.\0 \1,var_\2(sp)
  75.             ENDM
  76.  
  77. SPUTM                   MACRO
  78.             Movem.\0 \1,var_\2(sp)
  79.             ENDM
  80.  
  81. SADD                    MACRO
  82.             IFEQ    NARG-1
  83.              Add.\0  #1,var_\1(sp)
  84.             ELSE
  85.              Add.\0  \1,var_\2(sp)
  86.             ENDC
  87.             ENDM
  88.  
  89. SSUB                    MACRO
  90.             IFEQ    NARG-1
  91.              Sub.\0  #1,var_\1(sp)
  92.             ELSE
  93.              Sub.\0  \1,var_\2(sp)
  94.             ENDC
  95.             ENDM
  96.  
  97. SNOT                    MACRO
  98.             Not.\0  var_\1(sp)
  99.             ENDM
  100.  
  101. STST                    MACRO
  102.             Tst.\0  var_\1(sp)
  103.             ENDM
  104.  
  105. SCMP                    MACRO
  106.             IFC     '\*LEFT(\1,1)','#'
  107.              Cmp.\0  \1,var_\2(sp)
  108.             ELSE
  109.              Cmp.\0  var_\2(sp),\1
  110.             ENDC
  111.             ENDM
  112.  
  113. SLEA                    MACRO
  114.             Lea     var_\1(sp),\2
  115.             ENDM
  116.  
  117. INITVARS                MACRO
  118. \1                      EQU     \2
  119. _VARCNT                 SET     \2
  120.             ENDM
  121.  
  122. LVAR                    MACRO
  123. var_\1                  EQU     _VARCNT
  124. _VARCNT                 SET     _VARCNT+4
  125.             ENDM
  126.  
  127. WVAR                    MACRO
  128. var_\1                  EQU     _VARCNT
  129. _VARCNT                 SET     _VARCNT+2
  130.             ENDM
  131.  
  132. BVAR                    MACRO
  133. var_\1                  EQU     _VARCNT
  134. _VARCNT                 SET     _VARCNT+1
  135.             ENDM
  136.  
  137. IVAR                    MACRO
  138. var_\1                  EQU     _VARCNT
  139. _VARCNT                 SET     _VARCNT+\2
  140.             ENDM
  141.  
  142. ENDVARS                 MACRO
  143. \1_SIZE                 SET     _VARCNT
  144.             ENDM
  145.  
  146. TAGS                    MACRO
  147. \1
  148. _TAGOFFSET              SET     0
  149.             ENDM
  150.  
  151. TAG                     MACRO
  152. _TAGOFFSET              SET     _TAGOFFSET+8
  153.             Dc.l    \1,\2
  154.             ENDM
  155.  
  156. ENDTAGS                 MACRO
  157.             Dc.l    TAG_DONE
  158.             ENDM
  159.  
  160. CALL                    MACRO
  161.             IFEQ    NARG-2
  162.              IFC     '\1','Exec'
  163.               Move.l 4.w,a6
  164.              ELSE
  165.               VGET.l \1Base,a6
  166.              ENDC
  167.              Jsr    _LVO\2(a6)
  168.             ELSE
  169.              Jsr    _LVO\1(a6)
  170.             ENDC
  171.             ENDM
  172.  
  173. OLIB                    MACRO
  174.             Lea     \1Name(pc),a1
  175.             Moveq   #\2,d0
  176.             CALL    Exec,OpenLibrary
  177.             VPUT.l  d0,\1Base
  178.             ENDM
  179.  
  180. CLIB                    MACRO
  181.             VGET.l  \1Base,a1
  182.             CALL    Exec,CloseLibrary
  183.             ENDM
  184.  
  185. GETMEM                  MACRO
  186.             Move.l  #\1,d0
  187.             Move.l  #\2,d1
  188.             CALL    Exec,AllocVec
  189.             VPUT.l  d0,\3
  190.             ENDM
  191.  
  192. FREEMEM                 MACRO
  193.             VGET.l  \1,a1
  194.             CALL    Exec,FreeVec
  195.             ENDM
  196.  ENDC
  197.